#pragma once

#include "MessageSystem.h"
#include "IGameState.h"
#include "Player.h"
#include "ObjectManager.h"
#include "Enemy.h"

// Bitmap font
#include "BitmapFont.h"

class Emitter;

class GamePlayState : public IGameState 
{
public:
	static GamePlayState* GetInstance();

	static void MessageProc(Message* msg);

	bool win;
	bool lose;

	virtual void Enter();

	virtual void Exit();

	virtual bool Input();

	virtual void Update(float elapsed);

	virtual void Render();

private:
	GamePlayState();

	GamePlayState(GamePlayState& game);

	GamePlayState& operator=(GamePlayState& game);

	virtual ~GamePlayState();

	// Wrapper/Managers
	ObjectManager* om;

	// Temps to test
	int x;
	int y;
	int sound;
	int karl;
	int kitty;
	Emitter* e;

	//Entity* playerEntity;
	Player* player;

	vector<Enemy*> enemies;

	// pause
	bool paused;
	int pauseY;

	// Bitmap font
	CBitmapFont* GroupFont;
	int	FontImageID;

	// Options
	bool optionsON;

	// Sounds
	int musicVolume;
	int SFXVolume;
	int cursorX;
	int cursorY;
	float soundTimer;
	void SaveSounds(const char* szFileName);
};
